import request from '@/utils/request'

/**
 * 查询数据库列表
 * @returns {*}
 */
export function getDatabaseList(params) {
  return request({
    url: '/dataSource/find',
    method: 'get',
    params,
  })
}
export function getDatabaseTree(data) {
  return request({
    url: '/dataSource/findTree',
    method: 'post',
    data
  })
}
/**
 * 新增数据库信息
 * @returns {*}
 */
export function remoteAdd(data) {
  return request({
    url: '/dataSource/add',
    method: 'post',
    data,
  })
}
/**
 * 修改数据库信息
 * @returns {*}
 */
export function remoteUpdate(data) {
  return request({
    url: '/dataSource/update',
    method: 'post',
    data,
  })
}
/**
 * 测试数据库联通
 * @returns {*}
 */
export function remoteTest(data) {
  return request({
    url: '/dataSource/testConnect',
    method: 'post',
    data,
  })
}

/**
 * 根据连接信息获取表名
 * @param data
 * @returns {*}
 */
export function findTableName(data) {
  return request({
    url: '/dataSource/findTableName',
    method: 'post',
    data,
  })
}

/**
 * 获取表名
 * @param data
 * @returns {*}
 */
export function findDataBaseList(type,version) {
  return request({
    url: `/dataSet/findList/${type}/${version || '1.0.0'}`,
    method: 'get',
  })
}

/**
 * 获取历史表名
 * @param data
 * @returns {*}
 */
export function findReleaseList(type,version) {
  return request({
    url: `/dataSet/findReleaseList/${type}/${version || '1.0.0'}`,
    method: 'get',
  })
}

/**
 * 根据连接信息获取字段名
 * @param data
 * @returns {*}
 */
export function findColumnName(data) {
  return request({
    url: '/dataSource/findColumnName',
    method: 'post',
    data,
  })
}

/**
 * 生成ES mapping
 * @param data
 * @returns {*}
 */
export function getMapping(data) {
  return request({
    url: '/dataSource/mapping',
    method: 'post',
    data,
  })
}

/**
 * 生成CK mapping
 * @param data
 * @returns {*}
 */
export function getCKMapping(data) {
  return request({
    url: '/dataSource/createTableSql',
    method: 'post',
    data,
  })
}

/**
 * mysql/oracle生成clickhouse表结构
 * @param data
 * @returns {*}
 */
export function createCkTable(data) {
  return request({
    url: '/dataSource/createTable',
    method: 'post',
    data,
  })
}

/**
 * 获取ck引擎
 * @param data
 * @returns {*}
 */
export function getCkEngine() {
  return request({
    url: '/dataSource/findCKEngine',
    method: 'post',
  })
}

/**
 * 根据mapping文件生成es索引
 * @param data
 * @returns {*}
 */
export function createEsIndex(data) {
  return request({
    url: '/dataSource/createESIndex',
    method: 'post',
    data,
  })
}

/**
 * 查询数据库类型
 * @param data
 * @returns {*}
 */
export function createDBTypeList() {
  return request({
    url: '/dataSource/findDataSource',
    method: 'get',
  })
}

/**
 * 查询数据详情
 * @param data
 * @returns {*}
 */
export function findDataDetail(params) {
  return request({
    url: `/dataSet/find`,
    method: 'get',
    params
  })
}

/**
 * 查询数据详情
 * @param data
 * @returns {*}
 */
export function findHistoryDataDetail(id) {
  return request({
    url: `/dataSet/${id}`,
    method: 'get',
  })
}

/**
 * 新增规则字段信息
 * @param data
 * @returns {*}
 */
export function AddRulesColumn(data) {
  return request({
    url: '/dataSource/addRulesColumn',
    method: 'post',
    data,
  })
}


/**
 * 查询规则字段信息
 * @param data
 * @returns {*}
 */
export function FindRulesColumn(data) {
  return request({
    url: '/dataSource/findRulesColumn',
    method: 'post',
    data,
  })
}



/**
 * 查询数据集差异任务列表
 * @param data
 * @returns {*}
 */
export function getDataGroupDiffTaskList(data, page, size) {
  return request({
    url: `/monitorCenter/find/structureTask/list/${page}/${size}`,
    method: 'post',
    data,
  })
}

/**
 * 查询值域列表
 * @param data
 * @returns {*}
 */
export function getDomainListByType(type,version, page, size) {
  return request({
    url: `/domainManage/getDomainListByType/${type}/${version}/${page}/${size}`,
    method: 'get',
  })
}

/**
 * 删除字典
 * @param data
 * @returns {*}
 */
export function deleteDomainManage(type,id,version) {
  return request({
    url: `/domainManage/${type}/${id}/${version}`,
    method: 'delete',
  })
}

/**
 * 查询数据集版本
 * @param data
 * @returns {*}
 */
export function findAll(params) {
  return request({
    url: `/dataSet/findAll`,
    method: 'get',
    params
  })
}


/**
 * 查询所有数据库类型
 * @param data
 * @returns {*}
 */
export function findDataBaseType(params) {
  return request({
    url: `/dataSet/findDataBase`,
    method: 'get',
    params
  })
}





/**
 * 保存字典
 * @param data
 * @returns {*}
 */
export function updateDomainManage(path,data) {
  return request({
    url: `/domainManage/${path}`,
    method: 'post',
    data
  })
}

/**
 * 保存数据集
 * @param data
 * @returns {*}
 */
export function saveDataSet(data) {
  return request({
    url: `/dataSet/save`,
    method: 'post',
    data
  })
}

/**
 * 导入数据集
 * @param data
 * @returns {*}
 */
export function importDataSet(data,type,name,version,dataSetType) {
  return request({
    url: `/dataSet/import?type=${type}&name=${name}&version=${version}&dataSetType=${dataSetType}`,
    method: 'post',
    headers: {
      'Content-Type': 'multipart/form-data',
    },
    data

  })

}



/**
 * 导出数据集
 * @param data
 * @returns {*}
 */
export function exportDataSet(params) {
  return request({
    url: `/dataSet/export`,
    method: 'get',
    params
  })

}

//发布数据集

export function releaseDataSet(params) {
  return request({
    url: `/dataSet/release`,
    method: 'get',
    params
  })

}










/**
 * 新增
 * @param data
 * @returns {*}
 */
export function addDataGroupDiffTask(data) {
  return request({
    url: `/monitorCenter/add/structureTask`,
    method: 'post',
    data,
  })
}

/**
 * 更新
 * @param data
 * @returns {*}
 */
export function updateDataGroupDiffTask(data) {
  return request({
    url: `/monitorCenter/update/structureTask`,
    method: 'post',
    data,
  })
}

/**
 * 查询未读差异数
 * @param data
 * @returns {*}
 */
export function getDiffCount(data) {
  return request({
    url: `/monitorCenter/find/structureResult/count`,
    method: 'post',
    data,
  })
}

/**
 * 已读差异数
 * @param data
 * @returns {*}
 */
export function readDiff(data) {
  return request({
    url: `/monitorCenter/read/structureResult`,
    method: 'post',
    data,
  })
}

/**
 * 查询差异列表
 * @param data
 * @returns {*}
 */
export function getDiffList(page, size) {
  return request({
    url: `/monitorCenter/find/structureResult/list/${page}/${size}`,
    method: 'post',
  })
}


/**
 * 删除
 * @param id
 * @returns {*}
 */
export function deleteTask(id) {
  return request({
    url: `/monitorCenter/delete/structureTask/${id}`,
    method: 'post',
  })
}


/**
 * 生成flinkSQL
 * @param id
 * @returns {*}
 */
export function createFlinkSql(type, data) {
  return request({
    url: `/dataHighSpeedRail/flinkSql/create/${type}`,
    method: 'post',
    data
  })
}


// 新增用户信息
export function addUserApi(data) {
  return request({
    url: `/dataSource/userInfo/add`,
    method: 'post',
    data
  })
}
// 查询用户信息
export function userListApi(data) {
  return request({
    url: `/dataSource/userInfo/list`,
    method: 'post',
    data
  })
}
// 查询用户信息详情
export function userInfoApi(id) {
  return request({
    url: `/dataSource/userInfo/${id}`,
    method: 'get',
  })
}
// 修改用户信息
export function updateUserApi(data) {
  return request({
    url: `/dataSource/userInfo/update`,
    method: 'put',
    data
  })
}
// 删除用户信息
export function userDelApi(id) {
  return request({
    url: `/dataSource/userInfo/${id}`,
    method: 'delete',
  })
}

// 获取表名
export function findTables(data) {
  return request({
    url: `/dataSource/findTables`,
    method: 'post',
    data
  })
}

// 获取视图
export function findViews(data) {
  return request({
    url: `/dataSource/findViews`,
    method: 'post',
    data
  })
}

// 生成pg表结构sql
export function createPGSql(data) {
  return request({
    url: `/dataSource/createPGSql`,
    method: 'post',
    data
  })
}

// 生成pg表
export function createPGTable(data) {
  return request({
    url: `/dataSource/createPGTable`,
    method: 'post',
    data
  })
}

// 加密等级
export function secrecySave(data) {
  return request({
    url: `/secrecy/save`,
    method: 'post',
    data
  })
}
// 加密等级查询
export function secrecyInfo(table, dataSourceId, username) {
  return request({
    url: `/secrecy/find?table=${table}&dataSourceId=${dataSourceId}&username=${username}`,
    method: 'get',
  })
}


// 创建starrockts配置文件
export function createsStarrocktsProperties(data) {
  return request({
    url: `/dataSource/createsStarrocktsProperties`,
    method: 'post',
    data
  })
}
// 创建表starrockts配置文件
export function createsTableStarrocktsProperties(data) {
  return request({
    url: `/dataSource/createsTable`,
    method: 'post',
    data
  })
}
// 创建starrockts表
export function createsStarrocktsTable(data) {
  return request({
    url: `/dataSource/createsStarrocktsTable`,
    method: 'post',
    data
  })
}

// 查看starrockts配置
export function findStarrocktsProperties(id) {
  return request({
    url: `/dataSource/findStarrocktsProperties/${id}`,
    method: 'get',
  })
}

// 根据表名与版本查询数据集
export function findTable(params) {
  return request({
    url: `/dataSet/findTable`,
    method: 'get',
    params
  })
}

// 查询日志
export function findLogs(params, page, size) {
  return request({
    url: `/dataSet/findLogs/${page}/${size}`,
    method: 'get',
    params
  })
}

// 查询差异数据
export function compareVersion(params) {
  return request({
    url: `/dataSet/compareVersion`,
    method: 'get',
    params
  })
}

// 查询数据流向
export function findDataSourceFlow(id) {
  return request({
    url: `/dataSource/findDataSourceFlow/${id}`,
    method: 'get',
  })
}

// 业务类型数据源总数
export function findCountByBusiness() {
  return request({
    url: `/dataSource/findCountByBusiness`,
    method: 'get',
  })
}

// 业务类型数据源增长趋势
export function findTrendByBusiness() {
  return request({
    url: `/dataSource/findTrendByBusiness`,
    method: 'get',
  })
}

// 数据库类型数据源总数
export function findCountByType() {
  return request({
    url: `/dataSource/findCountByType`,
    method: 'get',
  })
}

// 创建mysql表
export function createMysqlTable(data) {
  return request({
    url: `/dataSource/createMysqlTable`,
    method: 'post',
    data
  })
}

// 批量生成Doris建表语句
export function batchCreateDorisSql(data) {
  return request({
    url: `/dataSource/batchCreateDorisSql`,
    method: 'post',
    data
  })
}

// 批量生成Doris表
export function batchCreateDorisTable(data) {
  return request({
    url: `/dataSource/batchCreateDorisTable`,
    method: 'post',
    data
  })
}

// /dataSource/batchCreateTable
export function batchCreateTable(data) {
  return request({
    url: `/dataSource/batchCreateTable`,
    method: 'post',
    data
  })
}

// /dataSource/batchExecTableSql
export function batchExecTableSql(data) {
  return request({
    url: `/dataSource/batchExecTableSql`,
    method: 'post',
    data
  })
}
